/**
 * jQuery EasyUI 1.4.1
 *
 * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved.
 *
 * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
 * To use it on other terms please contact us at info@jeasyui.com
 *
 */
(function ($) {
    function _1(_2) {
        var _3 = $.data(_2, "treegrid");
        var _4 = _3.options;
        $(_2).datagrid($.extend({}, _4, {
            url: null, data: null, loader: function () {
                return false;
            }, onBeforeLoad: function () {
                return false;
            }, onLoadSuccess: function () {
            }, onResizeColumn: function (_5, _6) {
                _26(_2);
                _4.onResizeColumn.call(_2, _5, _6);
            }, onBeforeSortColumn: function (_7, _8) {
                if (_4.onBeforeSortColumn.call(_2, _7, _8) == false) {
                    return false;
                }
            }, onSortColumn: function (_9, _a) {
                _4.sortName = _9;
                _4.sortOrder = _a;
                if (_4.remoteSort) {
                    _25(_2);
                } else {
                    var _b = $(_2).treegrid("getData");
                    _3f(_2, 0, _b);
                }
                _4.onSortColumn.call(_2, _9, _a);
            }, onBeforeEdit: function (_c, _d) {
                if (_4.onBeforeEdit.call(_2, _d) == false) {
                    return false;
                }
            }, onAfterEdit: function (_e, _f, _10) {
                _4.onAfterEdit.call(_2, _f, _10);
            }, onCancelEdit: function (_11, row) {
                _4.onCancelEdit.call(_2, row);
            }, onBeforeSelect: function (_12) {
                if (_4.onBeforeSelect.call(_2, _47(_2, _12)) == false) {
                    return false;
                }
            }, onSelect: function (_13) {
                _4.onSelect.call(_2, _47(_2, _13));
            }, onBeforeUnselect: function (_14) {
                if (_4.onBeforeUnselect.call(_2, _47(_2, _14)) == false) {
                    return false;
                }
            }, onUnselect: function (_15) {
                _4.onUnselect.call(_2, _47(_2, _15));
            }, onBeforeCheck: function (_16) {
                if (_4.onBeforeCheck.call(_2, _47(_2, _16)) == false) {
                    return false;
                }
            }, onCheck: function (_17) {
                _4.onCheck.call(_2, _47(_2, _17));
            }, onBeforeUncheck: function (_18) {
                if (_4.onBeforeUncheck.call(_2, _47(_2, _18)) == false) {
                    return false;
                }
            }, onUncheck: function (_19) {
                _4.onUncheck.call(_2, _47(_2, _19));
            }, onClickRow: function (_1a) {
                _4.onClickRow.call(_2, _47(_2, _1a));
            }, onDblClickRow: function (_1b) {
                _4.onDblClickRow.call(_2, _47(_2, _1b));
            }, onClickCell: function (_1c, _1d) {
                _4.onClickCell.call(_2, _1d, _47(_2, _1c));
            }, onDblClickCell: function (_1e, _1f) {
                _4.onDblClickCell.call(_2, _1f, _47(_2, _1e));
            }, onRowContextMenu: function (e, _20) {
                _4.onContextMenu.call(_2, e, _47(_2, _20));
            }
        }));
        if (!_4.columns) {
            var _21 = $.data(_2, "datagrid").options;
            _4.columns = _21.columns;
            _4.frozenColumns = _21.frozenColumns;
        }
        _3.dc = $.data(_2, "datagrid").dc;
        if (_4.pagination) {
            var _22 = $(_2).datagrid("getPager");
            _22.pagination({
                pageNumber: _4.pageNumber,
                pageSize: _4.pageSize,
                pageList: _4.pageList,
                onSelectPage: function (_23, _24) {
                    _4.pageNumber = _23;
                    _4.pageSize = _24;
                    _25(_2);
                }
            });
            _4.pageSize = _22.pagination("options").pageSize;
        }
    };
    function _26(_27, _28) {
        var _29 = $.data(_27, "datagrid").options;
        var dc = $.data(_27, "datagrid").dc;
        if (!dc.body1.is(":empty") && (!_29.nowrap || _29.autoRowHeight)) {
            if (_28 != undefined) {
                var _2a = _2b(_27, _28);
                for (var i = 0; i < _2a.length; i++) {
                    _2c(_2a[i][_29.idField]);
                }
            }
        }
        $(_27).datagrid("fixRowHeight", _28);
        function _2c(_2d) {
            var tr1 = _29.finder.getTr(_27, _2d, "body", 1);
            var tr2 = _29.finder.getTr(_27, _2d, "body", 2);
            tr1.css("height", "");
            tr2.css("height", "");
            var _2e = Math.max(tr1.height(), tr2.height());
            tr1.css("height", _2e);
            tr2.css("height", _2e);
        };
    };
    function _2f(_30) {
        var dc = $.data(_30, "datagrid").dc;
        var _31 = $.data(_30, "treegrid").options;
        if (!_31.rownumbers) {
            return;
        }
        dc.body1.find("div.datagrid-cell-rownumber").each(function (i) {
            $(this).html(i + 1);
        });
    };
    function _32(_33) {
        return function (e) {
            $.fn.datagrid.defaults.rowEvents[_33 ? "mouseover" : "mouseout"](e);
            var tt = $(e.target);
            var fn = _33 ? "addClass" : "removeClass";
            if (tt.hasClass("tree-hit")) {
                tt.hasClass("tree-expanded") ? tt[fn]("tree-expanded-hover") : tt[fn]("tree-collapsed-hover");
            }
        };
    };
    function _34(e) {
        var tt = $(e.target);
        if (tt.hasClass("tree-hit")) {
            var tr = tt.closest("tr.datagrid-row");
            var _35 = tr.closest("div.datagrid-view").children(".datagrid-f")[0];
            _36(_35, tr.attr("node-id"));
        } else {
            $.fn.datagrid.defaults.rowEvents.click(e);
        }
    };
    function _37(_38, _39) {
        var _3a = $.data(_38, "treegrid").options;
        var tr1 = _3a.finder.getTr(_38, _39, "body", 1);
        var tr2 = _3a.finder.getTr(_38, _39, "body", 2);
        var _3b = $(_38).datagrid("getColumnFields", true).length + (_3a.rownumbers ? 1 : 0);
        var _3c = $(_38).datagrid("getColumnFields", false).length;
        _3d(tr1, _3b);
        _3d(tr2, _3c);
        function _3d(tr, _3e) {
            $("<tr class=\"treegrid-tr-tree\">" + "<td style=\"border:0px\" colspan=\"" + _3e + "\">" + "<div></div>" + "</td>" + "</tr>").insertAfter(tr);
        };
    };
    function _3f(_40, _41, _42, _43) {
        var _44 = $.data(_40, "treegrid");
        var _45 = _44.options;
        var dc = _44.dc;
        _42 = _45.loadFilter.call(_40, _42, _41);
        var _46 = _47(_40, _41);
        if (_46) {
            var _48 = _45.finder.getTr(_40, _41, "body", 1);
            var _49 = _45.finder.getTr(_40, _41, "body", 2);
            var cc1 = _48.next("tr.treegrid-tr-tree").children("td").children("div");
            var cc2 = _49.next("tr.treegrid-tr-tree").children("td").children("div");
            if (!_43) {
                _46.children = [];
            }
        } else {
            var cc1 = dc.body1;
            var cc2 = dc.body2;
            if (!_43) {
                _44.data = [];
            }
        }
        if (!_43) {
            cc1.empty();
            cc2.empty();
        }
        if (_45.view.onBeforeRender) {
            _45.view.onBeforeRender.call(_45.view, _40, _41, _42);
        }
        _45.view.render.call(_45.view, _40, cc1, true);
        _45.view.render.call(_45.view, _40, cc2, false);
        if (_45.showFooter) {
            _45.view.renderFooter.call(_45.view, _40, dc.footer1, true);
            _45.view.renderFooter.call(_45.view, _40, dc.footer2, false);
        }
        if (_45.view.onAfterRender) {
            _45.view.onAfterRender.call(_45.view, _40);
        }
        if (!_41 && _45.pagination) {
            var _4a = $.data(_40, "treegrid").total;
            var _4b = $(_40).datagrid("getPager");
            if (_4b.pagination("options").total != _4a) {
                _4b.pagination({total: _4a});
            }
        }
        _26(_40);
        _2f(_40);
        $(_40).treegrid("showLines");
        $(_40).treegrid("setSelectionState");
        $(_40).treegrid("autoSizeColumn");
        _45.onLoadSuccess.call(_40, _46, _42);
    };
    function _25(_4c, _4d, _4e, _4f, _50) {
        var _51 = $.data(_4c, "treegrid").options;
        var _52 = $(_4c).datagrid("getPanel").find("div.datagrid-body");
        if (_4e) {
            _51.queryParams = _4e;
        }
        var _53 = $.extend({}, _51.queryParams);
        if (_51.pagination) {
            $.extend(_53, {page: _51.pageNumber, rows: _51.pageSize});
        }
        if (_51.sortName) {
            $.extend(_53, {sort: _51.sortName, order: _51.sortOrder});
        }
        var row = _47(_4c, _4d);
        if (_51.onBeforeLoad.call(_4c, row, _53) == false) {
            return;
        }
        var _54 = _52.find("tr[node-id=\"" + _4d + "\"] span.tree-folder");
        _54.addClass("tree-loading");
        $(_4c).treegrid("loading");
        var _55 = _51.loader.call(_4c, _53, function (_56) {
            _54.removeClass("tree-loading");
            $(_4c).treegrid("loaded");
            _3f(_4c, _4d, _56, _4f);
            if (_50) {
                _50();
            }
        }, function () {
            _54.removeClass("tree-loading");
            $(_4c).treegrid("loaded");
            _51.onLoadError.apply(_4c, arguments);
            if (_50) {
                _50();
            }
        });
        if (_55 == false) {
            _54.removeClass("tree-loading");
            $(_4c).treegrid("loaded");
        }
    };
    function _57(_58) {
        var _59 = _5a(_58);
        if (_59.length) {
            return _59[0];
        } else {
            return null;
        }
    };
    function _5a(_5b) {
        return $.data(_5b, "treegrid").data;
    };
    function _5c(_5d, _5e) {
        var row = _47(_5d, _5e);
        if (row._parentId) {
            return _47(_5d, row._parentId);
        } else {
            return null;
        }
    };
    function _2b(_5f, _60) {
        var _61 = $.data(_5f, "treegrid").options;
        var _62 = $(_5f).datagrid("getPanel").find("div.datagrid-view2 div.datagrid-body");
        var _63 = [];
        if (_60) {
            _64(_60);
        } else {
            var _65 = _5a(_5f);
            for (var i = 0; i < _65.length; i++) {
                _63.push(_65[i]);
                _64(_65[i][_61.idField]);
            }
        }
        function _64(_66) {
            var _67 = _47(_5f, _66);
            if (_67 && _67.children) {
                for (var i = 0, len = _67.children.length; i < len; i++) {
                    var _68 = _67.children[i];
                    _63.push(_68);
                    _64(_68[_61.idField]);
                }
            }
        };
        return _63;
    };
    function _69(_6a, _6b) {
        if (!_6b) {
            return 0;
        }
        var _6c = $.data(_6a, "treegrid").options;
        var _6d = $(_6a).datagrid("getPanel").children("div.datagrid-view");
        var _6e = _6d.find("div.datagrid-body tr[node-id=\"" + _6b + "\"]").children("td[field=\"" + _6c.treeField + "\"]");
        return _6e.find("span.tree-indent,span.tree-hit").length;
    };
    function _47(_6f, _70) {
        var _71 = $.data(_6f, "treegrid").options;
        var _72 = $.data(_6f, "treegrid").data;
        var cc = [_72];
        while (cc.length) {
            var c = cc.shift();
            for (var i = 0; i < c.length; i++) {
                var _73 = c[i];
                if (_73[_71.idField] == _70) {
                    return _73;
                } else {
                    if (_73["children"]) {
                        cc.push(_73["children"]);
                    }
                }
            }
        }
        return null;
    };
    function _74(_75, _76) {
        var _77 = $.data(_75, "treegrid").options;
        var row = _47(_75, _76);
        var tr = _77.finder.getTr(_75, _76);
        var hit = tr.find("span.tree-hit");
        if (hit.length == 0) {
            return;
        }
        if (hit.hasClass("tree-collapsed")) {
            return;
        }
        if (_77.onBeforeCollapse.call(_75, row) == false) {
            return;
        }
        hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
        hit.next().removeClass("tree-folder-open");
        row.state = "closed";
        tr = tr.next("tr.treegrid-tr-tree");
        var cc = tr.children("td").children("div");
        if (_77.animate) {
            cc.slideUp("normal", function () {
                $(_75).treegrid("autoSizeColumn");
                _26(_75, _76);
                _77.onCollapse.call(_75, row);
            });
        } else {
            cc.hide();
            $(_75).treegrid("autoSizeColumn");
            _26(_75, _76);
            _77.onCollapse.call(_75, row);
        }
    };
    function _78(_79, _7a) {
        var _7b = $.data(_79, "treegrid").options;
        var tr = _7b.finder.getTr(_79, _7a);
        var hit = tr.find("span.tree-hit");
        var row = _47(_79, _7a);
        if (hit.length == 0) {
            return;
        }
        if (hit.hasClass("tree-expanded")) {
            return;
        }
        if (_7b.onBeforeExpand.call(_79, row) == false) {
            return;
        }
        hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded");
        hit.next().addClass("tree-folder-open");
        var _7c = tr.next("tr.treegrid-tr-tree");
        if (_7c.length) {
            var cc = _7c.children("td").children("div");
            _7d(cc);
        } else {
            _37(_79, row[_7b.idField]);
            var _7c = tr.next("tr.treegrid-tr-tree");
            var cc = _7c.children("td").children("div");
            cc.hide();
            var _7e = $.extend({}, _7b.queryParams || {});
            _7e.id = row[_7b.idField];
            _25(_79, row[_7b.idField], _7e, true, function () {
                if (cc.is(":empty")) {
                    _7c.remove();
                } else {
                    _7d(cc);
                }
            });
        }
        function _7d(cc) {
            row.state = "open";
            if (_7b.animate) {
                cc.slideDown("normal", function () {
                    $(_79).treegrid("autoSizeColumn");
                    _26(_79, _7a);
                    _7b.onExpand.call(_79, row);
                });
            } else {
                cc.show();
                $(_79).treegrid("autoSizeColumn");
                _26(_79, _7a);
                _7b.onExpand.call(_79, row);
            }
        };
    };
    function _36(_7f, _80) {
        var _81 = $.data(_7f, "treegrid").options;
        var tr = _81.finder.getTr(_7f, _80);
        var hit = tr.find("span.tree-hit");
        if (hit.hasClass("tree-expanded")) {
            _74(_7f, _80);
        } else {
            _78(_7f, _80);
        }
    };
    function _82(_83, _84) {
        var _85 = $.data(_83, "treegrid").options;
        var _86 = _2b(_83, _84);
        if (_84) {
            _86.unshift(_47(_83, _84));
        }
        for (var i = 0; i < _86.length; i++) {
            _74(_83, _86[i][_85.idField]);
        }
    };
    function _87(_88, _89) {
        var _8a = $.data(_88, "treegrid").options;
        var _8b = _2b(_88, _89);
        if (_89) {
            _8b.unshift(_47(_88, _89));
        }
        for (var i = 0; i < _8b.length; i++) {
            _78(_88, _8b[i][_8a.idField]);
        }
    };
    function _8c(_8d, _8e) {
        var _8f = $.data(_8d, "treegrid").options;
        var ids = [];
        var p = _5c(_8d, _8e);
        while (p) {
            var id = p[_8f.idField];
            ids.unshift(id);
            p = _5c(_8d, id);
        }
        for (var i = 0; i < ids.length; i++) {
            _78(_8d, ids[i]);
        }
    };
    function _90(_91, _92) {
        var _93 = $.data(_91, "treegrid").options;
        if (_92.parent) {
            var tr = _93.finder.getTr(_91, _92.parent);
            if (tr.next("tr.treegrid-tr-tree").length == 0) {
                _37(_91, _92.parent);
            }
            var _94 = tr.children("td[field=\"" + _93.treeField + "\"]").children("div.datagrid-cell");
            var _95 = _94.children("span.tree-icon");
            if (_95.hasClass("tree-file")) {
                _95.removeClass("tree-file").addClass("tree-folder tree-folder-open");
                var hit = $("<span class=\"tree-hit tree-expanded\"></span>").insertBefore(_95);
                if (hit.prev().length) {
                    hit.prev().remove();
                }
            }
        }
        _3f(_91, _92.parent, _92.data, true);
    };
    function _96(_97, _98) {
        var ref = _98.before || _98.after;
        var _99 = $.data(_97, "treegrid").options;
        var _9a = _5c(_97, ref);
        _90(_97, {parent: (_9a ? _9a[_99.idField] : null), data: [_98.data]});
        var _9b = _9a ? _9a.children : $(_97).treegrid("getRoots");
        for (var i = 0; i < _9b.length; i++) {
            if (_9b[i][_99.idField] == ref) {
                var _9c = _9b[_9b.length - 1];
                _9b.splice(_98.before ? i : (i + 1), 0, _9c);
                _9b.splice(_9b.length - 1, 1);
                break;
            }
        }
        _9d(true);
        _9d(false);
        _2f(_97);
        $(_97).treegrid("showLines");
        function _9d(_9e) {
            var _9f = _9e ? 1 : 2;
            var tr = _99.finder.getTr(_97, _98.data[_99.idField], "body", _9f);
            var _a0 = tr.closest("table.datagrid-btable");
            tr = tr.parent().children();
            var _a1 = _99.finder.getTr(_97, ref, "body", _9f);
            if (_98.before) {
                tr.insertBefore(_a1);
            } else {
                var sub = _a1.next("tr.treegrid-tr-tree");
                tr.insertAfter(sub.length ? sub : _a1);
            }
            _a0.remove();
        };
    };
    function _a2(_a3, _a4) {
        var _a5 = $.data(_a3, "treegrid");
        $(_a3).datagrid("deleteRow", _a4);
        _2f(_a3);
        _a5.total -= 1;
        $(_a3).datagrid("getPager").pagination("refresh", {total: _a5.total});
        $(_a3).treegrid("showLines");
    };
    function _a6(_a7) {
        var t = $(_a7);
        var _a8 = t.treegrid("options");
        if (_a8.lines) {
            t.treegrid("getPanel").addClass("tree-lines");
        } else {
            t.treegrid("getPanel").removeClass("tree-lines");
            return;
        }
        t.treegrid("getPanel").find("span.tree-indent").removeClass("tree-line tree-join tree-joinbottom");
        t.treegrid("getPanel").find("div.datagrid-cell").removeClass("tree-node-last tree-root-first tree-root-one");
        var _a9 = t.treegrid("getRoots");
        if (_a9.length > 1) {
            _aa(_a9[0]).addClass("tree-root-first");
        } else {
            if (_a9.length == 1) {
                _aa(_a9[0]).addClass("tree-root-one");
            }
        }
        _ab(_a9);
        _ac(_a9);
        function _ab(_ad) {
            $.map(_ad, function (_ae) {
                if (_ae.children && _ae.children.length) {
                    _ab(_ae.children);
                } else {
                    var _af = _aa(_ae);
                    _af.find(".tree-icon").prev().addClass("tree-join");
                }
            });
            if (_ad.length) {
                var _b0 = _aa(_ad[_ad.length - 1]);
                _b0.addClass("tree-node-last");
                _b0.find(".tree-join").removeClass("tree-join").addClass("tree-joinbottom");
            }
        };
        function _ac(_b1) {
            $.map(_b1, function (_b2) {
                if (_b2.children && _b2.children.length) {
                    _ac(_b2.children);
                }
            });
            for (var i = 0; i < _b1.length - 1; i++) {
                var _b3 = _b1[i];
                var _b4 = t.treegrid("getLevel", _b3[_a8.idField]);
                var tr = _a8.finder.getTr(_a7, _b3[_a8.idField]);
                var cc = tr.next().find("tr.datagrid-row td[field=\"" + _a8.treeField + "\"] div.datagrid-cell");
                cc.find("span:eq(" + (_b4 - 1) + ")").addClass("tree-line");
            }
        };
        function _aa(_b5) {
            var tr = _a8.finder.getTr(_a7, _b5[_a8.idField]);
            var _b6 = tr.find("td[field=\"" + _a8.treeField + "\"] div.datagrid-cell");
            return _b6;
        };
    };
    $.fn.treegrid = function (_b7, _b8) {
        if (typeof _b7 == "string") {
            var _b9 = $.fn.treegrid.methods[_b7];
            if (_b9) {
                return _b9(this, _b8);
            } else {
                return this.datagrid(_b7, _b8);
            }
        }
        _b7 = _b7 || {};
        return this.each(function () {
            var _ba = $.data(this, "treegrid");
            if (_ba) {
                $.extend(_ba.options, _b7);
            } else {
                _ba = $.data(this, "treegrid", {
                    options: $.extend({}, $.fn.treegrid.defaults, $.fn.treegrid.parseOptions(this), _b7),
                    data: []
                });
            }
            _1(this);
            if (_ba.options.data) {
                $(this).treegrid("loadData", _ba.options.data);
            }
            _25(this);
        });
    };
    $.fn.treegrid.methods = {
        options: function (jq) {
            return $.data(jq[0], "treegrid").options;
        }, resize: function (jq, _bb) {
            return jq.each(function () {
                $(this).datagrid("resize", _bb);
            });
        }, fixRowHeight: function (jq, _bc) {
            return jq.each(function () {
                _26(this, _bc);
            });
        }, loadData: function (jq, _bd) {
            return jq.each(function () {
                _3f(this, _bd.parent, _bd);
            });
        }, load: function (jq, _be) {
            return jq.each(function () {
                $(this).treegrid("options").pageNumber = 1;
                $(this).treegrid("getPager").pagination({pageNumber: 1});
                $(this).treegrid("reload", _be);
            });
        }, reload: function (jq, id) {
            return jq.each(function () {
                var _bf = $(this).treegrid("options");
                var _c0 = {};
                if (typeof id == "object") {
                    _c0 = id;
                } else {
                    _c0 = $.extend({}, _bf.queryParams);
                    _c0.id = id;
                }
                if (_c0.id) {
                    var _c1 = $(this).treegrid("find", _c0.id);
                    if (_c1.children) {
                        _c1.children.splice(0, _c1.children.length);
                    }
                    _bf.queryParams = _c0;
                    var tr = _bf.finder.getTr(this, _c0.id);
                    tr.next("tr.treegrid-tr-tree").remove();
                    tr.find("span.tree-hit").removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
                    _78(this, _c0.id);
                } else {
                    _25(this, null, _c0);
                }
            });
        }, reloadFooter: function (jq, _c2) {
            return jq.each(function () {
                var _c3 = $.data(this, "treegrid").options;
                var dc = $.data(this, "datagrid").dc;
                if (_c2) {
                    $.data(this, "treegrid").footer = _c2;
                }
                if (_c3.showFooter) {
                    _c3.view.renderFooter.call(_c3.view, this, dc.footer1, true);
                    _c3.view.renderFooter.call(_c3.view, this, dc.footer2, false);
                    if (_c3.view.onAfterRender) {
                        _c3.view.onAfterRender.call(_c3.view, this);
                    }
                    $(this).treegrid("fixRowHeight");
                }
            });
        }, getData: function (jq) {
            return $.data(jq[0], "treegrid").data;
        }, getFooterRows: function (jq) {
            return $.data(jq[0], "treegrid").footer;
        }, getRoot: function (jq) {
            return _57(jq[0]);
        }, getRoots: function (jq) {
            return _5a(jq[0]);
        }, getParent: function (jq, id) {
            return _5c(jq[0], id);
        }, getChildren: function (jq, id) {
            return _2b(jq[0], id);
        }, getLevel: function (jq, id) {
            return _69(jq[0], id);
        }, find: function (jq, id) {
            return _47(jq[0], id);
        }, isLeaf: function (jq, id) {
            var _c4 = $.data(jq[0], "treegrid").options;
            var tr = _c4.finder.getTr(jq[0], id);
            var hit = tr.find("span.tree-hit");
            return hit.length == 0;
        }, select: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("selectRow", id);
            });
        }, unselect: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("unselectRow", id);
            });
        }, collapse: function (jq, id) {
            return jq.each(function () {
                _74(this, id);
            });
        }, expand: function (jq, id) {
            return jq.each(function () {
                _78(this, id);
            });
        }, toggle: function (jq, id) {
            return jq.each(function () {
                _36(this, id);
            });
        }, collapseAll: function (jq, id) {
            return jq.each(function () {
                _82(this, id);
            });
        }, expandAll: function (jq, id) {
            return jq.each(function () {
                _87(this, id);
            });
        }, expandTo: function (jq, id) {
            return jq.each(function () {
                _8c(this, id);
            });
        }, append: function (jq, _c5) {
            return jq.each(function () {
                _90(this, _c5);
            });
        }, insert: function (jq, _c6) {
            return jq.each(function () {
                _96(this, _c6);
            });
        }, remove: function (jq, id) {
            return jq.each(function () {
                _a2(this, id);
            });
        }, pop: function (jq, id) {
            var row = jq.treegrid("find", id);
            jq.treegrid("remove", id);
            return row;
        }, refresh: function (jq, id) {
            return jq.each(function () {
                var _c7 = $.data(this, "treegrid").options;
                _c7.view.refreshRow.call(_c7.view, this, id);
            });
        }, update: function (jq, _c8) {
            return jq.each(function () {
                var _c9 = $.data(this, "treegrid").options;
                _c9.view.updateRow.call(_c9.view, this, _c8.id, _c8.row);
            });
        }, beginEdit: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("beginEdit", id);
                $(this).treegrid("fixRowHeight", id);
            });
        }, endEdit: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("endEdit", id);
            });
        }, cancelEdit: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("cancelEdit", id);
            });
        }, showLines: function (jq) {
            return jq.each(function () {
                _a6(this);
            });
        }
    };
    $.fn.treegrid.parseOptions = function (_ca) {
        return $.extend({}, $.fn.datagrid.parseOptions(_ca), $.parser.parseOptions(_ca, ["treeField", {animate: "boolean"}]));
    };
    var _cb = $.extend({}, $.fn.datagrid.defaults.view, {
        render: function (_cc, _cd, _ce) {
            var _cf = $.data(_cc, "treegrid").options;
            var _d0 = $(_cc).datagrid("getColumnFields", _ce);
            var _d1 = $.data(_cc, "datagrid").rowIdPrefix;
            if (_ce) {
                if (!(_cf.rownumbers || (_cf.frozenColumns && _cf.frozenColumns.length))) {
                    return;
                }
            }
            var _d2 = this;
            if (this.treeNodes && this.treeNodes.length) {
                var _d3 = _d4(_ce, this.treeLevel, this.treeNodes);
                $(_cd).append(_d3.join(""));
            }
            function _d4(_d5, _d6, _d7) {
                var _d8 = $(_cc).treegrid("getParent", _d7[0][_cf.idField]);
                var _d9 = (_d8 ? _d8.children.length : $(_cc).treegrid("getRoots").length) - _d7.length;
                var _da = ["<table class=\"datagrid-btable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
                for (var i = 0; i < _d7.length; i++) {
                    var row = _d7[i];
                    if (row.state != "open" && row.state != "closed") {
                        row.state = "open";
                    }
                    var css = _cf.rowStyler ? _cf.rowStyler.call(_cc, row) : "";
                    var _db = "";
                    var _dc = "";
                    if (typeof css == "string") {
                        _dc = css;
                    } else {
                        if (css) {
                            _db = css["class"] || "";
                            _dc = css["style"] || "";
                        }
                    }
                    var cls = "class=\"datagrid-row " + (_d9++ % 2 && _cf.striped ? "datagrid-row-alt " : " ") + _db + "\"";
                    var _dd = _dc ? "style=\"" + _dc + "\"" : "";
                    var _de = _d1 + "-" + (_d5 ? 1 : 2) + "-" + row[_cf.idField];
                    _da.push("<tr id=\"" + _de + "\" node-id=\"" + row[_cf.idField] + "\" " + cls + " " + _dd + ">");
                    _da = _da.concat(_d2.renderRow.call(_d2, _cc, _d0, _d5, _d6, row));
                    _da.push("</tr>");
                    if (row.children && row.children.length) {
                        var tt = _d4(_d5, _d6 + 1, row.children);
                        var v = row.state == "closed" ? "none" : "block";
                        _da.push("<tr class=\"treegrid-tr-tree\"><td style=\"border:0px\" colspan=" + (_d0.length + (_cf.rownumbers ? 1 : 0)) + "><div style=\"display:" + v + "\">");
                        _da = _da.concat(tt);
                        _da.push("</div></td></tr>");
                    }
                }
                _da.push("</tbody></table>");
                return _da;
            };
        }, renderFooter: function (_df, _e0, _e1) {
            var _e2 = $.data(_df, "treegrid").options;
            var _e3 = $.data(_df, "treegrid").footer || [];
            var _e4 = $(_df).datagrid("getColumnFields", _e1);
            var _e5 = ["<table class=\"datagrid-ftable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
            for (var i = 0; i < _e3.length; i++) {
                var row = _e3[i];
                row[_e2.idField] = row[_e2.idField] || ("foot-row-id" + i);
                _e5.push("<tr class=\"datagrid-row\" node-id=\"" + row[_e2.idField] + "\">");
                _e5.push(this.renderRow.call(this, _df, _e4, _e1, 0, row));
                _e5.push("</tr>");
            }
            _e5.push("</tbody></table>");
            $(_e0).html(_e5.join(""));
        }, renderRow: function (_e6, _e7, _e8, _e9, row) {
            var _ea = $.data(_e6, "treegrid").options;
            var cc = [];
            if (_e8 && _ea.rownumbers) {
                cc.push("<td class=\"datagrid-td-rownumber\"><div class=\"datagrid-cell-rownumber\">0</div></td>");
            }
            for (var i = 0; i < _e7.length; i++) {
                var _eb = _e7[i];
                var col = $(_e6).datagrid("getColumnOption", _eb);
                if (col) {
                    var css = col.styler ? (col.styler(row[_eb], row) || "") : "";
                    var _ec = "";
                    var _ed = "";
                    if (typeof css == "string") {
                        _ed = css;
                    } else {
                        if (cc) {
                            _ec = css["class"] || "";
                            _ed = css["style"] || "";
                        }
                    }
                    var cls = _ec ? "class=\"" + _ec + "\"" : "";
                    var _ee = col.hidden ? "style=\"display:none;" + _ed + "\"" : (_ed ? "style=\"" + _ed + "\"" : "");
                    cc.push("<td field=\"" + _eb + "\" " + cls + " " + _ee + ">");
                    var _ee = "";
                    if (!col.checkbox) {
                        if (col.align) {
                            _ee += "text-align:" + col.align + ";";
                        }
                        if (!_ea.nowrap) {
                            _ee += "white-space:normal;height:auto;";
                        } else {
                            if (_ea.autoRowHeight) {
                                _ee += "height:auto;";
                            }
                        }
                    }
                    cc.push("<div style=\"" + _ee + "\" ");
                    if (col.checkbox) {
                        cc.push("class=\"datagrid-cell-check ");
                    } else {
                        cc.push("class=\"datagrid-cell " + col.cellClass);
                    }
                    cc.push("\">");
                    if (col.checkbox) {
                        if (row.checked) {
                            cc.push("<input type=\"checkbox\" checked=\"checked\"");
                        } else {
                            cc.push("<input type=\"checkbox\"");
                        }
                        cc.push(" name=\"" + _eb + "\" value=\"" + (row[_eb] != undefined ? row[_eb] : "") + "\">");
                    } else {
                        var val = null;
                        if (col.formatter) {
                            val = col.formatter(row[_eb], row);
                        } else {
                            val = row[_eb];
                        }
                        if (_eb == _ea.treeField) {
                            for (var j = 0; j < _e9; j++) {
                                cc.push("<span class=\"tree-indent\"></span>");
                            }
                            if (row.state == "closed") {
                                cc.push("<span class=\"tree-hit tree-collapsed\"></span>");
                                cc.push("<span class=\"tree-icon tree-folder " + (row.iconCls ? row.iconCls : "") + "\"></span>");
                            } else {
                                if (row.children && row.children.length) {
                                    cc.push("<span class=\"tree-hit tree-expanded\"></span>");
                                    cc.push("<span class=\"tree-icon tree-folder tree-folder-open " + (row.iconCls ? row.iconCls : "") + "\"></span>");
                                } else {
                                    cc.push("<span class=\"tree-indent\"></span>");
                                    cc.push("<span class=\"tree-icon tree-file " + (row.iconCls ? row.iconCls : "") + "\"></span>");
                                }
                            }
                            cc.push("<span class=\"tree-title\">" + val + "</span>");
                        } else {
                            cc.push(val);
                        }
                    }
                    cc.push("</div>");
                    cc.push("</td>");
                }
            }
            return cc.join("");
        }, refreshRow: function (_ef, id) {
            this.updateRow.call(this, _ef, id, {});
        }, updateRow: function (_f0, id, row) {
            var _f1 = $.data(_f0, "treegrid").options;
            var _f2 = $(_f0).treegrid("find", id);
            $.extend(_f2, row);
            var _f3 = $(_f0).treegrid("getLevel", id) - 1;
            var _f4 = _f1.rowStyler ? _f1.rowStyler.call(_f0, _f2) : "";
            var _f5 = $.data(_f0, "datagrid").rowIdPrefix;
            var _f6 = _f2[_f1.idField];

            function _f7(_f8) {
                var _f9 = $(_f0).treegrid("getColumnFields", _f8);
                var tr = _f1.finder.getTr(_f0, id, "body", (_f8 ? 1 : 2));
                var _fa = tr.find("div.datagrid-cell-rownumber").html();
                var _fb = tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked");
                tr.html(this.renderRow(_f0, _f9, _f8, _f3, _f2));
                tr.attr("style", _f4 || "");
                tr.find("div.datagrid-cell-rownumber").html(_fa);
                if (_fb) {
                    tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked", true);
                }
                if (_f6 != id) {
                    tr.attr("id", _f5 + "-" + (_f8 ? 1 : 2) + "-" + _f6);
                    tr.attr("node-id", _f6);
                }
            };
            _f7.call(this, true);
            _f7.call(this, false);
            $(_f0).treegrid("fixRowHeight", id);
        }, deleteRow: function (_fc, id) {
            var _fd = $.data(_fc, "treegrid").options;
            var tr = _fd.finder.getTr(_fc, id);
            tr.next("tr.treegrid-tr-tree").remove();
            tr.remove();
            var _fe = del(id);
            if (_fe) {
                if (_fe.children.length == 0) {
                    tr = _fd.finder.getTr(_fc, _fe[_fd.idField]);
                    tr.next("tr.treegrid-tr-tree").remove();
                    var _ff = tr.children("td[field=\"" + _fd.treeField + "\"]").children("div.datagrid-cell");
                    _ff.find(".tree-icon").removeClass("tree-folder").addClass("tree-file");
                    _ff.find(".tree-hit").remove();
                    $("<span class=\"tree-indent\"></span>").prependTo(_ff);
                }
            }
            function del(id) {
                var cc;
                var _100 = $(_fc).treegrid("getParent", id);
                if (_100) {
                    cc = _100.children;
                } else {
                    cc = $(_fc).treegrid("getData");
                }
                for (var i = 0; i < cc.length; i++) {
                    if (cc[i][_fd.idField] == id) {
                        cc.splice(i, 1);
                        break;
                    }
                }
                return _100;
            };
        }, onBeforeRender: function (_101, _102, data) {
            if ($.isArray(_102)) {
                data = {total: _102.length, rows: _102};
                _102 = null;
            }
            if (!data) {
                return false;
            }
            var _103 = $.data(_101, "treegrid");
            var opts = _103.options;
            if (data.length == undefined) {
                if (data.footer) {
                    _103.footer = data.footer;
                }
                if (data.total) {
                    _103.total = data.total;
                }
                data = this.transfer(_101, _102, data.rows);
            } else {
                function _104(_105, _106) {
                    for (var i = 0; i < _105.length; i++) {
                        var row = _105[i];
                        row._parentId = _106;
                        if (row.children && row.children.length) {
                            _104(row.children, row[opts.idField]);
                        }
                    }
                };
                _104(data, _102);
            }
            var node = _47(_101, _102);
            if (node) {
                if (node.children) {
                    node.children = node.children.concat(data);
                } else {
                    node.children = data;
                }
            } else {
                _103.data = _103.data.concat(data);
            }
            this.sort(_101, data);
            this.treeNodes = data;
            this.treeLevel = $(_101).treegrid("getLevel", _102);
        }, sort: function (_107, data) {
            var opts = $.data(_107, "treegrid").options;
            if (!opts.remoteSort && opts.sortName) {
                var _108 = opts.sortName.split(",");
                var _109 = opts.sortOrder.split(",");
                _10a(data);
            }
            function _10a(rows) {
                rows.sort(function (r1, r2) {
                    var r = 0;
                    for (var i = 0; i < _108.length; i++) {
                        var sn = _108[i];
                        var so = _109[i];
                        var col = $(_107).treegrid("getColumnOption", sn);
                        var _10b = col.sorter || function (a, b) {
                                return a == b ? 0 : (a > b ? 1 : -1);
                            };
                        r = _10b(r1[sn], r2[sn]) * (so == "asc" ? 1 : -1);
                        if (r != 0) {
                            return r;
                        }
                    }
                    return r;
                });
                for (var i = 0; i < rows.length; i++) {
                    var _10c = rows[i].children;
                    if (_10c && _10c.length) {
                        _10a(_10c);
                    }
                }
            };
        }, transfer: function (_10d, _10e, data) {
            var opts = $.data(_10d, "treegrid").options;
            var rows = [];
            for (var i = 0; i < data.length; i++) {
                rows.push(data[i]);
            }
            var _10f = [];
            for (var i = 0; i < rows.length; i++) {
                var row = rows[i];
                if (!_10e) {
                    if (!row._parentId) {
                        _10f.push(row);
                        rows.splice(i, 1);
                        i--;
                    }
                } else {
                    if (row._parentId == _10e) {
                        _10f.push(row);
                        rows.splice(i, 1);
                        i--;
                    }
                }
            }
            var toDo = [];
            for (var i = 0; i < _10f.length; i++) {
                toDo.push(_10f[i]);
            }
            while (toDo.length) {
                var node = toDo.shift();
                for (var i = 0; i < rows.length; i++) {
                    var row = rows[i];
                    if (row._parentId == node[opts.idField]) {
                        if (node.children) {
                            node.children.push(row);
                        } else {
                            node.children = [row];
                        }
                        toDo.push(row);
                        rows.splice(i, 1);
                        i--;
                    }
                }
            }
            return _10f;
        }
    });
    $.fn.treegrid.defaults = $.extend({}, $.fn.datagrid.defaults, {
        treeField: null,
        lines: false,
        animate: false,
        singleSelect: true,
        view: _cb,
        rowEvents: $.extend({}, $.fn.datagrid.defaults.rowEvents, {
            mouseover: _32(true),
            mouseout: _32(false),
            click: _34
        }),
        loader: function (_110, _111, _112) {
            var opts = $(this).treegrid("options");
            if (!opts.url) {
                return false;
            }
            $.ajax({
                type: opts.method, url: opts.url, data: _110, dataType: "json", success: function (data) {
                    _111(data);
                }, error: function () {
                    _112.apply(this, arguments);
                }
            });
        },
        loadFilter: function (data, _113) {
            return data;
        },
        finder: {
            getTr: function (_114, id, type, _115) {
                type = type || "body";
                _115 = _115 || 0;
                var dc = $.data(_114, "datagrid").dc;
                if (_115 == 0) {
                    var opts = $.data(_114, "treegrid").options;
                    var tr1 = opts.finder.getTr(_114, id, type, 1);
                    var tr2 = opts.finder.getTr(_114, id, type, 2);
                    return tr1.add(tr2);
                } else {
                    if (type == "body") {
                        var tr = $("#" + $.data(_114, "datagrid").rowIdPrefix + "-" + _115 + "-" + id);
                        if (!tr.length) {
                            tr = (_115 == 1 ? dc.body1 : dc.body2).find("tr[node-id=\"" + id + "\"]");
                        }
                        return tr;
                    } else {
                        if (type == "footer") {
                            return (_115 == 1 ? dc.footer1 : dc.footer2).find("tr[node-id=\"" + id + "\"]");
                        } else {
                            if (type == "selected") {
                                return (_115 == 1 ? dc.body1 : dc.body2).find("tr.datagrid-row-selected");
                            } else {
                                if (type == "highlight") {
                                    return (_115 == 1 ? dc.body1 : dc.body2).find("tr.datagrid-row-over");
                                } else {
                                    if (type == "checked") {
                                        return (_115 == 1 ? dc.body1 : dc.body2).find("tr.datagrid-row-checked");
                                    } else {
                                        if (type == "last") {
                                            return (_115 == 1 ? dc.body1 : dc.body2).find("tr:last[node-id]");
                                        } else {
                                            if (type == "allbody") {
                                                return (_115 == 1 ? dc.body1 : dc.body2).find("tr[node-id]");
                                            } else {
                                                if (type == "allfooter") {
                                                    return (_115 == 1 ? dc.footer1 : dc.footer2).find("tr[node-id]");
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }, getRow: function (_116, p) {
                var id = (typeof p == "object") ? p.attr("node-id") : p;
                return $(_116).treegrid("find", id);
            }, getRows: function (_117) {
                return $(_117).treegrid("getChildren");
            }
        },
        onBeforeLoad: function (row, _118) {
        },
        onLoadSuccess: function (row, data) {
        },
        onLoadError: function () {
        },
        onBeforeCollapse: function (row) {
        },
        onCollapse: function (row) {
        },
        onBeforeExpand: function (row) {
        },
        onExpand: function (row) {
        },
        onClickRow: function (row) {
        },
        onDblClickRow: function (row) {
        },
        onClickCell: function (_119, row) {
        },
        onDblClickCell: function (_11a, row) {
        },
        onContextMenu: function (e, row) {
        },
        onBeforeEdit: function (row) {
        },
        onAfterEdit: function (row, _11b) {
        },
        onCancelEdit: function (row) {
        }
    });
})(jQuery);

